home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Cl…Business) - New Member 21 / Software of the Month Club XXI - New Member Business.ISO / mac / Utilities / Chiron v2.4 Release ƒ / Chiron v2.4 / Chiron v2.4.rsrc / TEXT_137.txt < prev    next >
Text File  |  1995-08-15  |  15KB  |  352 lines

  1.  
  2.                                           ┬á
  3.  
  4.  
  5.  
  6.  
  7. What is the Sad Mac?
  8.  
  9. Usually when one turns on their Macintosh, it smiles at them (Happy Mac).  However, one day it may snarl at you.  First lets explain what happens the moment you flick the switch, or hit the power key, inside your Macintosh.  
  10.  
  11. Once your Macintosh is brought up to full power the Mac runs what's called in the computer world a Power On Self Test (POST).  Several memory and system diagnostic tests take place.  If any one of these tests fails, the Sad Macintosh icon appears.  The Macintosh will display two 8-digit hexadecimal numbers displayed under the icon.
  12.  
  13. How do I make a Sad Mac happy again?
  14.  
  15. Most hardware failures that display a Sad Macintosh error will do so before the floppy drive or hard drive start spinning.  If a Sad Macintosh appears after the disk starts spinning, the first digits of the error code are usually 'OF' and often indicate corrupted software.  If you get this error code, try restarting the Macintosh with the Option and Command keys held down to rebuild the desktop file.  You also may be able to fix these problems by reinstalling system software or disabling the extensions by holding down the shift key.
  16.  
  17. If all else fails it means there is a problem with the hardware and you should take your Mac to an Apple Qualified technician.  Remember, attempting repairs yourself will void Apple's warranty.  If you've never seen a Sad Mac before and you have this urge, try hitting the interrupt button (plastic things on the side of compact Macs, little buttons on the front of newer Macs, or some weird keyboard combination on others) while the Mac is checking the RAM (this is when the screen is gray and void of all else at start up).  Of course, I'm not recommending it to anybody because I'm sure there is some way it might affect something adversely.
  18.  
  19. ----------------------------------------------------------- 
  20.  
  21. Sad Mac Error Codes On the original ROMs (128k, 512k, 512ke, Plus):
  22.  
  23. When you press the interrupt button on the side of your Macintosh when booting, you should get a sad Mac icon with '0F000D' and some bits cycling under the icon indicating it is performing a memory test.
  24.  
  25. This numeric code is in two parts:  the first two characters are the class code and the second four are the sub code.  The class code tells what part of the diagnostic program found the error and the sub class code tells what the error was.  In the case of a bad RAM chip, the sub class identifies the bad chip.
  26.  
  27.  
  28. ===========================================================
  29.  
  30. Class Code                                                                                                                             Sub Code
  31.  
  32. 1 = ROM test failed                                                                              Meaningless
  33. 2 = Memory test - bus subtest                                         identifies bad chips
  34. 3 = Memory test - byte write                                                identifies bad chips
  35. 4 = Memory test - Mod3 test                                                    identifies bad chips
  36. 5 = Memory test - address uniqueness                identifies bad chips
  37.  
  38. ----------------------------------------------------------------------------------- 
  39.  
  40. Single Chip Identification
  41.  
  42. Data Bit               Location              Sub Code Bits
  43.  
  44. 0                                                                                        F5                                                                                0001
  45. 1                                                                                        F6                                                                                0002
  46. 2                                                                                        F7                                                                                0004
  47. 3                                                                                        F8                                                                                0008
  48. 4                                                                                        F9                                                                                0010
  49. 5                                                                                        F10                                                                            0020
  50. 6                                                                                        F11                                                                            0040
  51. 7                                                                                        F12                                                                            0080
  52. 8                                                                                        G5                                                                                0100
  53. 9                                                                                        G6                                                                                0200
  54. 10                                                                                    G7                                                                                0400
  55. 11                                                                                    G8                                                                                0800
  56. 12                                                                                    G9                                                                                1000
  57. 13                                                                                    G10                                                                            2000
  58. 14                                                                                    G11                                                                            4000
  59. 15                                                                                    G12                                                                            8000
  60. ----------------------------------------------------------------------------------- 
  61.  
  62. Class Code                                            Sub Code
  63.  
  64. F = Exception                        0001 Bus error
  65.                                                                             0002 Address error
  66.                                                                             0003 Illegal instruction
  67.                                                                             0004 Zero divide
  68.                                                                             0005 Check instruction
  69.                                                                             0006 Traps instruction
  70.                                                                             0007 Privilege violation
  71.                                                                             0008 Trace
  72.                                                                             0009 Line 1010
  73.                                                                             000A Line 1111
  74.                                                                             000B Other exception
  75.                                                                             000C Nothing
  76.                                                                             000D NMI (normal indication)
  77.                                                                             0064 CouldnΓÇÖt Read System File into Memory
  78.  
  79. Macintosh SE & Macintosh II ROMs:
  80.  
  81. The Sad Mac error codes have been changed to incorporate additional power for testing and to support the 32-bit world. Generally, the same codes are used for 68000 exceptions as with other Macintosh's, however they are displayed differently.
  82.  
  83. The traditional Macintosh error codes are displayed like this:
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90. Where ΓÇ£FΓÇ¥ indicates an exception occurred, and ΓÇ£3ΓÇ¥ indicates an illegal instruction occurred. On the Macintosh SE and II, the display would appear:
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. Please note that 00000003 is a hex number.
  98.  
  99. The new powerΓÇôon error codes have the following format:
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107. Where XXXX is internal test manager state information (ignore this), YYYY contains codes that indicate either an exception code, or the test number for a power on test failure. The ZZZZZZZZ code contains additional failure information to help track down the problem.
  108.  
  109. YYYY Error Codes:
  110.  
  111. $0001                                    The ROM checksum test failed. Ignore the Z field.
  112.  
  113. $0002                                    The first small chunk of RAM to be tested failed. The Z
  114.                                                      field indicates which RAM Bit(s) failed. This small
  115.                                                      chunk of RAM is always in Bank B.
  116.  
  117.                                                         Example:    $AABBCCDD
  118.                                                                                             AA=8 bit mask for bits 31-24
  119.                                                                                             BB=8 bit mask for bits 23-16
  120.                                                                                             CC=8 bit mask for bits 15-8
  121.                                                                                             DD=8 bit mask for bits 7-0
  122.  
  123. $0003                                    The RAM test failed while testing bank B, after passing 
  124.                                                         the chunk tested     for code $0002. The Z field indicates 
  125.                                                         which bits failed as in code $0002.
  126.  
  127. $0004                                    The RAM test failed while testing bank A. The Z field 
  128.                                                         indicates which bits     failed as in code $0002.
  129.  
  130. $0005                                    The RAM External addressing test failed. The Z field 
  131.                                                         indicates a failed     address line.
  132.  
  133. $0006                                    Unable to properly address the VIA1 chip. The Z field                     
  134.                                                         is not applicable.
  135.  
  136. $0007                                    Unable to properly address the VIA2 chip (Macintosh II 
  137.                                                         only). The Z field is not     applicable.
  138.  
  139. $0008                                    Unable to properly access the Front Desk Bus. The Z 
  140.                                                         field is not     applicable.
  141.  
  142. $0009                                    Unable to properly access the MMU. The Z field is not 
  143.                                                         applicable.
  144.  
  145. $000A                                    Unable to properly access NuBus. The Z field is not
  146.                                                      applicable.
  147.  
  148. $000B                                    Unable to properly access the SCSI Chip. The Z field is 
  149.                                                         not applicable.
  150.  
  151. $000C                                    Unable to properly access the IWM chip. The Z field is
  152.                                                      not applicable.
  153.  
  154. $000D                                    Unable to properly access the SCC Chip. The Z field is
  155.                                                      not applicable.
  156.  
  157. $000E                                    Failed Data Bus test. The Z field indicated the bad 
  158.                                                         bit(s) as a 32-bit mask     for bits 0-31. This may 
  159.                                                         indicate either a bad SIMM  or data bus failure.
  160.  
  161. $000F                                    Reserved for Macintosh compatibility.
  162.  
  163. $FFxx                                    A 680xx exception occurred during power on testing. The
  164.                                                      xx indicates the    exception:
  165.  
  166.                                                         $01 ΓÇö Bus Error
  167.                                                         $02 ΓÇö Address Error
  168.                                                         $03 ΓÇö Illegal Instruction Error
  169.                                                         $04 ΓÇö Zero Divide
  170.                                                         $05 ΓÇö Check Instruction
  171.                                                         $06 ΓÇö cpTrapCC, Trap CC, Trap V
  172.                                                         $07 ΓÇö Privilege violation
  173.                                                         $08 ΓÇö Trace
  174.                                                         $09 ΓÇö Line A
  175.                                                         $0A ΓÇö Line F
  176.                                                         $0B ΓÇö unassigned
  177.                                                         $0C ΓÇö CP protocol violation
  178.                                                         $0D ΓÇö Format exception
  179.                                                         $0E ΓÇö Spurious interrupt
  180.                                                         $0F ΓÇö Trap 0ΓÇô15 exception
  181.                                                         $10 ΓÇö Interrupt Level 1
  182.                                                         $11 ΓÇö Interrupt Level 2
  183.                                                         $12 ΓÇö Interrupt Level 3     
  184.                                                         $13 ΓÇö Interrupt Level 4
  185.                                                         $14 ΓÇö Interrupt Level 5
  186.                                                         $15 ΓÇö Interrupt Level 6
  187.                                                         $16 ΓÇö Interrupt Level 7
  188.                                                         $17 ΓÇö FPCP bra or set on unordered condition
  189.                                                         $18 ΓÇö FPCP inexact result
  190.                                                         $19 ΓÇö FPCP divide by zero
  191.                                                         $1A ΓÇö FPCP underflow
  192.                                                         $1B ΓÇö FPCP operand error
  193.                                                         $1C ΓÇö FPCP overflow
  194.                                                         $1D ΓÇö FPCP signalling NAN
  195.                                                         $1E ΓÇö PMMU configuration
  196.                                                         $1F ΓÇö PMMU illegal operation
  197.                                                         $20 ΓÇö PMMU access level violation
  198.  
  199.  
  200. Macintosh Portable ROMs:
  201.  
  202. The bootup code in the Macintosh Portable contains a series of startup tests that are run to ensure that the fundamental operations of the machine are working properly.  If any of those tests fail, a Sad Mac icon appears on the screen with a code below that describes what failure occurred.  Here is a typical example of a Sad Mac display with an error code below it:
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212. The two codes are actually the contents of the two CPU data registers D6 and D7.  The upper word (upper 4 hex digits, in this case 0546) of D7 contains miscellaneous flags that are used by the start-up test routines and are unimportant to just about everybody except a few test engineers within Apple.  The lower word of D7 is the major error code.  The major error code identifies the general area the test routines were in when a failure occurred.  D6 is the minor error and usually contains additional information about the failure, something like a failed bit mask.
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222. The major error is further broken into the upper byte that contains the number of any 68000 exception that occurred ($00 meaning that no exception occurred), and the lower byte that usually contains the test that was being run at the time of failure.  If an unexpected exception occurred during a particular test, then the exception number is logically ORed into the major error code.  This way both the exception that occurred as well as the test that was running can be decoded from the major error code:
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229. In this example, the code says that an address error exception ($0200) occurred during the RAM test for Bank A ($03); $0200 ORed with $03 = $0203.
  230.  
  231. Major error codes
  232. Below is a brief description of the various test codes that might appear in the major error code:
  233.  
  234. ΓÇó    Warning:    Some of these codes may mean slightly different things in Macintosh models other than the Macintosh Portable.  These descriptions describe specifically how they are used in the Macintosh Portable.
  235.  
  236. $01     -    ROM test failed.  Minor error code is $FFFF, means nothing.  
  237. $02     -    RAM test failed.  Minor error code indicates which RAM bits
  238.                                      failed.  
  239. $05     -    RAM external addressing test failed.  Minor error code 
  240.                                         indicates a failed address line.
  241. $06     -    Unable to properly access the VIA 1 chip during VIA 
  242.                                         initialization.  Minor error code not applicable.
  243. $08     -    Data bus test at location eight bytes off of top of memory
  244.                                         failed.  Minor error code indicates the bad bits as a 
  245.                                         16ΓÇôbit mask for bits 15ΓÇô00.  This may indicate either a bad 
  246.                                         RAM  chip or data bus failure.
  247. $0B        -    Unable to properly access the SCSI chip.  Minor error code
  248.                                      not applicable.
  249. $0C        -    Unable to properly access the IWM (or SWIM) chip.  Minor
  250.                                      error code not applicable.
  251. $0D    -    Not applicable to Macintosh Portable.  Unable to properly
  252.                                  access the SCC chip.  Minor error code not applicable.
  253. $0E    -    Data bus test at location $0 failed.  Minor error code 
  254.                                     indicates the bad bits as a 16ΓÇôbit mask for bits 15ΓÇô00.
  255.                               This may indicate either a bad RAM  chip or data bus 
  256.                                     failure.
  257. $10    -    Video RAM test failed.  Minor error code indicates which RAM 
  258.                                     bits failed.
  259. $11    -    Video RAM addressing test failed. Minor error code contains
  260.                               the following:     
  261.                                                                     upper word                                    =                            failed address (16-bit)    
  262.                                                                     msb of lower word        =                            data written    
  263.                                                                     lsb of lower word        =                            data read
  264.                                     Data value written also indicates which address line is 
  265.                                     being actively tested.
  266. $12    -    Deleted
  267. $13    -    Deleted
  268. $14    -    Power Manager processor was unable to turn on all the power 
  269.                                     to the board.  This may have been due to a communication
  270.                                  problem with the Power Manager.  If so, the minor error code 
  271.                                     contains a Power Manager error code, explained in the next 
  272.                                     section.
  273. $15    -    Power Manager failed its self-test.  Minor error code 
  274.                                     contains the following:    
  275.                                                             msw   =    error status of transmission to power manager.
  276.                                                             lsw   =    Power Manager self-test results (0 means it 
  277.                                                                                             passed, non-zero means it failed)
  278. $16    -    A failure occurred while trying to size and configure the 
  279.                                     RAM.  Minor error code not applicable.
  280.  
  281. Minor error codesΓÇöPower Manager processor failures
  282.  
  283. If a communication problem occurs during communication with the Power Manager, the following error codes will appear somewhere in the minor error code (usually in the lower half of the code, but not always):
  284.  
  285. $CD38    Power Manager was never ready to start handshake.
  286. $CD37    Timed out waiting for reply to initial handshake.
  287. $CD36    During a send, Power Manager did not start a handshake.
  288. $CD35    During a send, Power Manager did not finish a handshake.
  289. $CD34    During a receive, Power Manager did not start a handshake.
  290. $CD33    During a receive, Power Manager did not finish a handshake.
  291.  
  292. Diagnostic Code Summary
  293.  
  294. Below is a summarized version of the Sad Mac error codes:
  295.  
  296. Test Codes 
  297.  
  298. $01    ROM checksum test.
  299. $02    RAM test.  
  300. $05    RAM addressing test.
  301. $06    VIA 1 chip access.
  302. $08    Data bus test at top of memory.
  303. $0B    SCSI chip access.
  304. $0C    IWM (or SWIM) chip access.
  305. $0D    Not applicable to Macintosh Portable.  SCC chip access.
  306. $0E    Data bus test at location $0.
  307. $10    Video RAM test.
  308. $11    Video RAM addressing test.
  309. $14    Power Manager board power on.
  310. $15    Power Manager self-test.
  311. $16    RAM sizing.
  312.  
  313.  
  314. Power Manager communication error codes 
  315.  
  316. $CD38    Initial handshake.
  317. $CD37    No reply to initial handshake.
  318. $CD36    During send, no start of a handshake.
  319. $CD35    During a send, no finish of a handshake.
  320. $CD34    During a receive, no start of a handshake.
  321. $CD33    During a receive, no finish of a handshake.
  322.  
  323.  
  324. CPU exception codes (as used by the startup tests) 
  325.  
  326. $0100    Bus error exception code
  327. $0200    Address error exception code
  328. $0300    Illegal error exception code
  329. $0400    Zero divide error exception code
  330. $0500    Check inst error exception code
  331. $0600    cpTrapcc,Trapcc,TrapV exception code
  332. $0700    Privilege violation exception code
  333. $0800    Trace exception code
  334. $0900    Line A exception code
  335. $0A00    Line F exception code
  336. $0B00    Unassigned exception code
  337. $0C00    CP protocol violation
  338. $0D00    Format exception
  339. $0E00    Spurious interrupt exception code
  340. $0F00    Trap inst exception code
  341. $1000    Interrupt level 1
  342. $1100    Interrupt level 2
  343. $1200    Interrupt level 3
  344. $1300    Interrupt level 4
  345. $1400    Interrupt level 5
  346. $1500    Interrupt level 6
  347. $1600    Interrupt level 7
  348.  
  349.  
  350.  
  351.  
  352.